package com.mapper;

import com.domain.entity.Cart;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author caishenao
 * @description 针对表【cart】的数据库操作Mapper
 * @createDate 2023-10-12 20:12:25
 * @Entity com.entity.Cart
 */
@Mapper
public interface CartMapper {

    /**
     * 新增购物车数据到数据库
     *
     * @param cart 购物车
     */
    void insert(@Param("cart") Cart cart);

    /**
     * 查询本人所有购物车信息
     *
     * @return 购物车信息
     */
    List<Cart> list(@Param("userId") Integer userId);

    /**
     * 根据id和用户id查询购物车信息
     *
     * @param id     购物车id
     * @param userId 用户id
     * @return 购物车信息
     */
    Cart getByIdAndUserId(@Param("id") Integer id, @Param("userId") Integer userId);

    /**
     * 根据购物车id和用户id删除购物车信息
     *
     * @param id     购物车id
     * @param userId 用户id
     */
    void deleteByIdAndUserId(@Param("id") Integer id, @Param("userId") Integer userId);

    /**
     * 根据用户id删除购物车信息
     *
     * @param userId 用户id
     */
    void deleteByUserId(@Param("userId") Integer userId);

    /**
     * 选择性修改购物车
     *
     * @param cart 修改的购物车信息
     */
    void updateSelect(@Param("cart") Cart cart);

    /**
     * 计算总钱数根据用户id
     *
     * @param userId 用户id
     * @return 该用户的总钱数
     */
    Double getTotalMoneyByUserId(@Param("userId") Integer userId);
}




